﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using com.nm.Attributes;

namespace VerticaAPI.model
{
    /// <summary>
    /// 区域
    /// </summary>
    public class OdsErpBasAreaModel
    {
        /// <summary>
        /// ods.ods_erp_Bas_Area
        /// </summary>
        public class CreatModel: NeceModel
        {
            
            [ParamDescription("是否为最明细")]
            public long? IsDetail { get; set; }
            [ParamDescription("完整名")]
            public string FullName { get; set; }
            [ParamDescription("完整ID")]
            public string FullParentID { get; set; }
            [ParamDescription("备注")]
            public string Remark { get; set; }
            [ParamDescription("允许使用")]
            public long? AllowUsed { get; set; }
            [ParamDescription("审核日期")]
            public string CheckDate { get; set; }
            [ParamDescription("审核人")]
            public string Checker { get; set; }
            [ParamDescription("审核状态")]
            public long? CheckState { get; set; }
            [ParamDescription("锁定状态")]
            public long? LockState { get; set; }
            [ParamDescription("同步状态")]
            public long? SyncState { get; set; }
            [ParamDescription("修改时间")]
            public string ModifyDTM { get; set; }
            [ParamDescription("Lan")]
            public long? Lan { get; set; }
            [ParamDescription("组ID")]
            public string CityGradeID { get; set; }
            [ParamDescription("读取时间")]
            public DateTime? LoadTime { get; set; }
            [ParamDescription("修改时间")]
            public DateTime? EtlDate { get; set; }
        }

        public class NeceModel
        {
            [ParamDescription("地区ID")]
            public string AreaID { get; set; }
            [ParamDescription("地区代码")]
            public string AreaCode { get; set; }
            [ParamDescription("地区名称")]
            public string AreaName { get; set; }
            [ParamDescription("上级ID")]
            public string ParentID { get; set; }
            [ParamDescription("级次")]
            public long? Level { get; set; }
        }

        ///// <summary>
        ///// 地区列表
        ///// </summary>
        //public class ListModel : NeceModel
        //{
        //    [ParamDescription("地区列表")]
        //    public IList<ListModel> Children { get; set; }
        //    [ParamDescription("是否已选")]
        //    public bool IsChoose { get; set; }
        //}

        /// <summary>
        /// 地区列表
        /// </summary>
        public class ListModel : NeceModel
        {
            [ParamDescription("上级名称")]
            public string ParentName { get; set; }
            [ParamDescription("是否已选")]
            public bool IsChoose { get; set; }
        }


        /// <summary>
        /// 区域
        /// </summary>
        public class ModifyAreaModel
        {
            public IList<string> oldAreaCodeList { get; set; }

            [ParamDescription("地区Code列表")]
            public IList<string> AreaCodeList { get; set; }

            [ParamDescription("区域ID")]
            public string DistrictID { get; set; }
        }
        /// <summary>
        /// 仓库
        /// </summary>
        public class ModifyStockModel
        {
            public IList<string> oldAreaCodeList { get; set; }

            [ParamDescription("地区Code列表")]
            public IList<string> AreaCodeList { get; set; }

            [ParamDescription("仓库ID")]
            public string StockID { get; set; }
        }
    }

    public class DwAreaProCity
    {
        public class CreatModel
        {
            [ParamDescription("公司ID")]
            public string CompanyID { get; set; }

            [ParamDescription("城市ID")]
            public string AreaID { get; set; }

            [ParamDescription("区域ID")]
            public string ParentAreaID { get; set; }

            [ParamDescription("仓库ID")]
            public string StockID { get; set; }

            [ParamDescription("读取时间")]
            public DateTime? LoadTime { get; set; }

            [ParamDescription("修改时间")]
            public DateTime? EtlDate { get; set; }
        }
    }

    /// <summary>
    /// 零售区域
    /// </summary>
    public class OdsErpBasOperationArea
    {
        public class CreatModel: NeceModel
        {
            [ParamDescription("公司ID")]
            public string CompanyID { get; set; }
            [ParamDescription("零售区域Code")]
            public string OperationAreaCode { get; set; }
            [ParamDescription("Manager")]
            public string Manager { get; set; }
            [ParamDescription("父ID")]
            public string ParentID { get; set; }
            [ParamDescription("等级")]
            public long? Level { get; set; }
            [ParamDescription("IsDetail")]
            public long? IsDetail { get; set; }
            [ParamDescription("全称")]
            public string FullName { get; set; }
            [ParamDescription("全称父ID")]
            public string FullParentID { get; set; }
            [ParamDescription("Remark")]
            public string Remark { get; set; }
            [ParamDescription("是否可用")]
            public long? AllowUsed { get; set; }
            [ParamDescription("ModifyDTM")]
            public string ModifyDTM { get; set; }
            [ParamDescription("Lan")]
            public long? Lan { get; set; }
            [ParamDescription("读取时间")]
            public DateTime? LoadTime { get; set; }
            [ParamDescription("修改时间")]
            public DateTime? EtlDate { get; set; }
        }

        public class NeceModel
        {
            [ParamDescription("零售区域ID")]
            public string OperationAreaID { get; set; }
            [ParamDescription("零售区域")]
            public string OperationAreaName { get; set; }
        }
    }

    /// <summary>
    /// 仓库
    /// </summary>
    public class OdsErpBasStock
    {
        public class CreatModel:NeceModel
        {
            [ParamDescription("公司ID")]
            public string CompanyID { get; set; }
            [ParamDescription("区域ID")]
            public string OperationAreaID { get; set; }
            [ParamDescription("地区ID")]
            public string AreaID { get; set; }
            [ParamDescription("DakID")]
            public string DakID { get; set; }
            [ParamDescription("InvStruID")]
            public string InvStruID { get; set; }
            [ParamDescription("地址")]
            public string Address { get; set; }
            [ParamDescription("电话")]
            public string TelPhone { get; set; }
            [ParamDescription("传真")]
            public string Fax { get; set; }
            [ParamDescription("Manage")]
            public string Manage { get; set; }
            [ParamDescription("面积")]
            public decimal? Area { get; set; }
            [ParamDescription("UnitID")]
            public string UnitID { get; set; }
            [ParamDescription("StockProperty")]
            public long? StockProperty { get; set; }
            [ParamDescription("StockPropertyID")]
            public string StockPropertyID { get; set; }
            [ParamDescription("UnitID")]
            public long? StockType { get; set; }
            [ParamDescription("StockProperty")]
            public string StockTypeID { get; set; }
            [ParamDescription("CheckFlag")]
            public long? CheckFlag { get; set; }
            [ParamDescription("IsObject")]
            public long? IsObject { get; set; }
            [ParamDescription("CostCalc")]
            public long? CostCalc { get; set; }
            [ParamDescription("IsStorer")]
            public long? IsStorer { get; set; }
            [ParamDescription("Remark")]
            public string Remark { get; set; }
            [ParamDescription("是否可用")]
            public long? AllowUsed { get; set; }
            [ParamDescription("ModifyDTM")]
            public string ModifyDTM { get; set; }
            [ParamDescription("BigShopBatchMoveDate")]
            public string BigShopBatchMoveDate { get; set; }
            [ParamDescription("BigShopBatchMoveTime")]
            public string BigShopBatchMoveTime { get; set; }
            [ParamDescription("InitAccountDate")]
            public string InitAccountDate { get; set; }
            [ParamDescription("InitFlag")]
            public long? InitFlag { get; set; }
            [ParamDescription("QXFlag")]
            public long? QXFlag { get; set; }
            [ParamDescription("VendCustID")]
            public string VendCustID { get; set; }
            [ParamDescription("InitStorerFlag")]
            public long? InitStorerFlag { get; set; }
            [ParamDescription("IsFreeze")]
            public long? IsFreeze { get; set; }
            [ParamDescription("EnabledState")]
            public long? EnabledState { get; set; }
            [ParamDescription("RetailPriceProjID")]
            public string RetailPriceProjID { get; set; }
            [ParamDescription("DepartMentID")]
            public string DepartMentID { get; set; }
            [ParamDescription("Lan")]
            public long? Lan { get; set; }
            [ParamDescription("CardCompanyNo")]
            public string CardCompanyNo { get; set; }
            [ParamDescription("BenefitBelongID")]
            public string BenefitBelongID { get; set; }
            [ParamDescription("MobilePhone")]
            public string MobilePhone { get; set; }
            [ParamDescription("Email")]
            public string Email { get; set; }
            [ParamDescription("IsWMSStorer")]
            public long? IsWMSStorer { get; set; }
            [ParamDescription("读取时间")]
            public DateTime? LoadTime { get; set; }
            [ParamDescription("修改时间")]
            public DateTime? EtlDate { get; set; }
        }

        public class NeceModel
        {
            [ParamDescription("仓库ID")]
            public string StockID { get; set; }
            [ParamDescription("仓库Code")]
            public string StockCode { get; set; }
            [ParamDescription("仓库")]
            public string StockName { get; set; }
        }
    }
}
